package com.example.demo.service;

import com.example.demo.controller.TeamDashboardVO;
import com.example.demo.controller.MemberContributionVO;
import com.example.demo.entity.Team;

import java.util.Optional;


public interface TeamDashboardService {

    /**
     * 获取团队数据看板
     * @param teamId 团队ID
     * @return 团队看板数据
     */
    TeamDashboardVO getTeamDashboard(Long teamId);

    /**
     * 获取团队成员贡献度
     * @param teamId 团队ID
     * @param studentId 学生ID
     * @return 成员贡献度数据
     */
    MemberContributionVO getMemberContribution(Long teamId, Long studentId);

    /**
     * 计算团队得分和排名
     * @param teamId 团队ID
     * @param dashboard 团队看板对象
     */
    void calculateTeamScoreAndRanking(Long teamId, TeamDashboardVO dashboard);

    /**
     * 计算团队成员贡献度
     * @param teamId 团队ID
     * @param dashboard 团队看板对象
     */
    void calculateMemberContributions(Long teamId, TeamDashboardVO dashboard);

    /**
     * 计算团队进度
     * @param teamId 团队ID
     * @param dashboard 团队看板对象
     */
    void calculateTeamProgress(Long teamId, TeamDashboardVO dashboard);

    Optional<Team> findById(Long id);
}